package com.kexilo.core.common.annotation;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * API版本注解
 * 用于标记API接口的版本信息
 * 
 * @author Kexilo
 */
@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface ApiVersion {

    /**
     * API版本号
     * 例如：v1, v2, v3
     */
    String value() default "v1";

    /**
     * 版本描述
     */
    String description() default "";

    /**
     * 是否已弃用
     */
    boolean deprecated() default false;

    /**
     * 弃用说明
     */
    String deprecationNote() default "";

    /**
     * 最小支持版本
     * 例如：当前版本为v3，最小支持版本为v2，则v1版本将不可用
     */
    String minSupportVersion() default "";
}

